Generally, cloud computing may be used to leverage the virtualization of computing infrastructures such as computer networks, servers, software applications and service. Cloud computing service providers offer their computing infrastructures as a fully outsourced service to their customers. By so doing, these companies can dramatically reduce costs associated with hardware, software and support by paying cloud computing service providers under a “pay-as-you-go” model.
A cloud computing environment (sometimes referred to as a cloud environment, or a cloud) can be implemented in a variety of different ways to best suit different requirements. For example, in a public cloud environment, the underlying computing infrastructure is owned by an organization that makes its cloud services available to other organizations or to the general public. Alternatively, a private cloud environment is generally intended for use by, or within, a single organization. Further, a community cloud is intended to be shared by several organizations within a community. Lastly, a hybrid cloud includes two or more types of clouds, e.g., private, community, or public, which are bound together by data and application portability.
Cloud computing services may be offered at various layers of the software stack. At a lower layer, Infrastructure as a Service (IaaS) systems allow users, such as for example system administrators, to have access to nodes hosted by the cloud computing provider across one or more data centers. These nodes may include physical machines, virtual machines (VMs) and containers.
Over time, updates on one or more deployed services may be required. This is commonly referred to as patching. During patching, the entire file for a particular service may be updated. However, currently available patching techniques can cause interruptions in services, especially in systems running a stack, e.g., Microsoft Azure Stack (MAS), which may host tens of hundreds of interwoven nodes. Such interruptions can negatively impact the user experience.
What is desired is a system and technique for eliminating or reducing the detrimental impacts to interwoven nodes running in a stack via patching processes.
What is also desired is a system and technique for improving recovery of past updates if the patch cannot be validated.